class_name FleshpactOathRemovalEffect
extends Effect

# 需要移除效果的玩家引用
var player: Player

func execute(_targets: Array[Node]) -> void:
	if player:
		_remove_fleshpact_oath_effects(player)

func _remove_fleshpact_oath_effects(player: Player) -> void:
	print("🔄 移除血肉契约誓言效果")
	
	# 检查player是否有modifier_handler
	if player.get("modifier_handler") == null:
		print("❌ 玩家没有modifier_handler，无法移除效果")
		return
	
	# 移除cost增加修改器
	var cost_modifier = player.modifier_handler.get_modifier(Modifier.Type.CARD_COST)
	if cost_modifier:
		cost_modifier.remove_value("fleshpact_oath_cost")
		print("💰 已移除cost增加修改器")
	
	# 移除效果翻倍修改器
	var multiplier_modifier = player.modifier_handler.get_modifier(Modifier.Type.CARD_EFFECT_MULTIPLIER)
	if multiplier_modifier:
		multiplier_modifier.remove_value("fleshpact_oath_multiplier")
		print("🚀 已移除效果翻倍修改器")
	
	print("✅ 血肉契约誓言效果已完全移除")
	
	# 通知手牌更新所有卡牌的费用显示
	_notify_hand_update_costs(player)

# 新增：通知手牌更新费用显示
func _notify_hand_update_costs(player: Player) -> void:
	# 通过场景树查找手牌
	var tree = player.get_tree()
	if tree:
		var hand = tree.get_first_node_in_group("hand")
		if hand and hand.has_method("update_all_card_costs"):
			hand.update_all_card_costs()
			print("🔧 已通知手牌更新所有卡牌的费用显示")
		else:
			print("🔧 未找到手牌或手牌没有update_all_card_costs方法") 